home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 7661 / 7661.xpi / chrome / isreaditlater.jar / content / text.js < prev    next >
Text File  |  2009-10-12  |  4KB  |  154 lines

  1. // Functions
  2.  
  3. function $(id){return document.getElementById(id);}
  4.  
  5. function showSettings() {
  6.     
  7.     var s = $('RIL_settings_wrapper');
  8.     if (s.innerHTML.length < 5) {
  9.         s.innerHTML = '\
  10.             <h4>Settings:</h4>\
  11.             <p>\
  12.                 <strong>Light:</strong>\
  13.                 <a id="sL0">Day</a>\
  14.                 <a id="sL1">Night</a>\
  15.             </p>\
  16.             <p>\
  17.                 <strong>Font Size:</strong>\
  18.                 <a id="sS0">Small</a>\
  19.                 <a id="sS1">Medium</a>\
  20.                 <a id="sS2">Large</a>\
  21.             </p>\
  22.             <p>\
  23.                 <strong>Font:</strong>\
  24.                 <a id="sF0">Sans-Serif</a>\
  25.                 <a id="sF1">Serif</a>\
  26.             </p>\
  27.         ' + (screen.availWidth > 320 ? '\
  28.             <p>\
  29.                 <strong>Margin:</strong>\
  30.                 <a id="sM0">Small</a>\
  31.                 <a id="sM1">Medium</a>\
  32.                 <a id="sM2">Large</a>\
  33.                 <a id="sM3">Larger</a>\
  34.             </p>\
  35.             ' : '' ) + '\
  36.             <p>\
  37.                 <strong>Align:</strong>\
  38.                 <a id="sA0">Left</a>\
  39.                 <a id="sA1">Justify</a>\
  40.             </p>\
  41.             ';
  42.         
  43.         var p;
  44.         var as = s.getElementsByTagName('a');
  45.         for(var i=0; i<as.length; i++) {
  46.             p = pa(as[i]);
  47.             if ( o[p[0]] == p[1] ) { as[i].className = 'selected'; }
  48.             as[i].onclick = set;            
  49.         }
  50.     } else {            
  51.         s.style.display = s.style.display == 'none' ? 'block' : 'none' ;            
  52.     }
  53.     
  54. }    
  55.  
  56. function set(e) {    
  57.     var p = pa(this);
  58.     $('s' + p[0] + o[p[0]]).className = '';
  59.     document.body.className = document.body.className.replace(p[0] + o[p[0]], p[0]+p[1]);    
  60.     
  61.     $('s' + p[0] + p[1]).className = 'selected';
  62.             
  63.     o[p[0]] = p[1];
  64.     
  65.     saveSettings();
  66. }
  67.  
  68. function pa(el) {
  69.     el.id.match(/s([A-Z])([0-9])/);
  70.     return [RegExp.$1,RegExp.$2];        
  71. }
  72.  
  73. function settingsLoaded(event)
  74. {
  75.     o = JSON.parse( document.body.getAttribute('o') );
  76.     var str = '';
  77.     var i;
  78.     for(i in o)
  79.     {
  80.         str += ' '+i+o[i];
  81.     }
  82.     document.body.className = str;
  83. }
  84.  
  85. function saveSettings()
  86. {
  87.     document.body.setAttribute('o', JSON.stringify(o));
  88.     
  89.     var evt = document.createEvent("Events");
  90.     evt.initEvent("settingschanged", true, false);
  91.     document.body.dispatchEvent(evt);
  92. }
  93.  
  94. function showMore()
  95. {    
  96.     document.body.setAttribute('id', 'more');
  97. }
  98.  
  99. function showLess()
  100. {    
  101.     document.body.setAttribute('id', 'less');
  102. }
  103.  
  104. // -- Init
  105.  
  106. var o = {};
  107.  
  108. // Add events
  109. window.addEventListener("settingsloaded", settingsLoaded, false);
  110.  
  111. window.onload = function(){
  112.     $('RIL_settings').onclick = showSettings;
  113.     $('nav_more').getElementsByTagName('a')[0].onclick = showMore;
  114.     $('nav_less').getElementsByTagName('a')[0].onclick = showLess;
  115.  
  116.     // look for a bad less section
  117.  
  118.     if ( $('RIL_less').textContent.length  < 200 ) {
  119.         var p = document.createElement('p');
  120.         p.className = 'note';
  121.         p.innerHTML = 'The text generator could not find much content.  You might have better luck switching to the \'More\' view. </p>';
  122.         $('RIL_less').insertBefore(p,$('RIL_less').firstChild);
  123.     }
  124.     if ( $('RIL_more').textContent.length  < 200 ) {
  125.         var p = document.createElement('p');
  126.         p.className = 'note';
  127.         p.innerHTML = 'The text generator could not find much content.  If you know there should be content here, please help improve the text generator by <a href="http://readitlaterlist.com/support/">reporting this page</a>. </p>';
  128.         $('RIL_more').insertBefore(p,$('RIL_more').firstChild);
  129.     }
  130.     
  131.     // update scheme links
  132.     for(var i in document.links)
  133.     {
  134.         if (document.links[i] && document.links[i].href && document.links[i].href.match('isril:'))
  135.         {
  136.             document.links[i].onclick = document.links[i].href.match(':less') ? showLess : showMore;
  137.             document.links[i].removeAttribute('href');
  138.         }
  139.     }
  140.     
  141.     if ( $('RIL_no_less_view_note') )
  142.     {
  143.         showMore();
  144.     }
  145. }
  146.  
  147.  
  148.     
  149.  
  150.  
  151.  
  152.  
  153.  
  154.